﻿using System;
using System.Collections.Generic;

namespace TraceThisItem.Domain
{
	public class Project
	{
		#region Properties

		public int Id { get; set; }

		public string Name { get; set; }

		public DateTime CreatedOn { get; set; }

		public string OwnerUserName { get; set; }

		#endregion Properties

		#region Navigation properties

		public virtual User Owner { get; set; }

		public virtual ICollection<Team> Teams { get; set; }

		public virtual ICollection<Item> Items { get; set; }

		public virtual ICollection<ItemType> ItemTypes { get; set; }

		//public virtual ICollection<StatusType> StatusTypes { get; set; }

		#endregion Navigation properties

		public Project()
		{
			this.Teams = new List<Team>();
		}

		#region Methods

		/*public void AddItemType(ItemType itemType)
		{
			this.ItemTypes.Add(itemType);
		}

		public void RemoveItemType(ItemType itemType)
		{
			throw new System.NotImplementedException();
		}

		public void AddStatusType(StatusType statusType)
		{
			throw new System.NotImplementedException();
		}

		public void RemoveStatusType(StatusType statusType)
		{
			throw new System.NotImplementedException();
		}*/

		public void AddTeam(Team team)
		{
			throw new System.NotImplementedException();
		}

		public void RemoveTeam(Team team)
		{
			throw new System.NotImplementedException();
		}

		public ICollection<Team> GetTeamsByUser(User user)
		{
			throw new System.NotImplementedException();
		}

		/*public void AddItem(Item item)
		{
			this.Items.Add(item);
		}

		public void RemoveItem(Item item)
		{
			throw new System.NotImplementedException();
		}*/

		#endregion Methods

		public override string ToString()
		{
			return this.Name;
		}
	}
}